package impresion;

import clientes.Cliente;
import com.lowagie.text.Chunk;
import com.lowagie.text.Document;
import com.lowagie.text.DocumentException;
import com.lowagie.text.Paragraph;
import com.lowagie.text.pdf.PdfWriter;
import empresa.DatosEmpresa;
import gestion.Albaran;
import gestion.Trabajo;
import gestion.TrabajoProducto;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.persistence.Query;
import productos.Producto;

/**
 *
 * @author rocio
 */
public class ImprimirAlbaran extends Imprimir  {
    private javax.persistence.EntityManager lpdPUEntityManager;
    private Albaran albaran;
    private Boolean a;
    private Query q,q1,q2,q3,q4;
    private TrabajoProducto trabajoProducto;
    private Producto producto;
    private float total1,total2;
    private String tit;
    private Cliente cliente;
    private Trabajo  trabajo;
    /** Creates new form ImprimirAlbaran */
    public ImprimirAlbaran() {
        lpdPUEntityManager = java.beans.Beans.isDesignTime() ? null : javax.persistence.Persistence.createEntityManagerFactory("lpdPU").createEntityManager();
    }

    public void setAlbaran(Albaran albaran) throws DocumentException{
        this.albaran=albaran;
    }

    @Override
    protected String getTit() {
        q=lpdPUEntityManager.createQuery("SELECT t FROM Trabajo t WHERE t.iDtrabajo="+albaran.getIDtrabajo());
        trabajo=(Trabajo) q.getSingleResult();
        q1=lpdPUEntityManager.createQuery("SELECT c FROM Cliente c WHERE c.iDcliente="+trabajo.getIDcliente());
        cliente=(Cliente) q1.getSingleResult();
        tit="albaran_".concat(String.valueOf(albaran.getIDalbaran())).concat("_cliente_").concat(String.valueOf(cliente.getIDcliente())).concat("_fecha_").concat(albaran.getFecha()).concat(".pdf");
        return tit;
    }

    @Override
    protected void setDescripcion() throws DocumentException, Exception {
        a = documento.add(new Paragraph("Albaran número: "+albaran.getIDalbaran()+"     con fecha: "+albaran.getFecha()));
        a=documento.add(new Paragraph("\n Cliente: "+cliente.getNombre()));
        q3=lpdPUEntityManager.createQuery("SELECT tp FROM TrabajoProducto tp WHERE tp.trabajoProductoPK.iDtrabajo="+trabajo.getIDtrabajo());
        List trabajosProductos=q3.getResultList();
        Iterator it=trabajosProductos.iterator();
        total1=0;
        while (it.hasNext()){
            trabajoProducto=(TrabajoProducto) it.next();
            q4=lpdPUEntityManager.createQuery("SELECT p FROM Producto p WHERE p.iDproducto="+trabajoProducto.getTrabajoProductoPK().getIDproducto());
            producto=(Producto) q4.getSingleResult();
            total2=producto.getPrecio()*trabajoProducto.getCantidad();
            a = documento.add(new Paragraph("\n            Número producto: "+producto.getIDproducto()+"       Concepto: "+producto.getConcepto()+"        Cantidad: "+trabajoProducto.getCantidad()+"      Precio/Unidad: "+producto.getPrecio()+"     Total: "+total2));
            total1=total1+total2;
        }

        a=documento.add (Chunk.NEWLINE);
        a=documento.add (Chunk.NEWLINE);
        a = documento.add(new Paragraph("                                                                          TOTAL: "+total1));
    try{
        Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " + tit);
    } catch (IOException ex) {
    Logger.getLogger(ImprimirFactura.class.getName()).log(Level.SEVERE, null, ex);
    }

    }

    @Override
    protected void copiar() {
    }







  

}
